import Vue from 'vue'
import axios from 'axios'
import { Message, MessageBox } from 'element-ui'
import store from '../store'
//import { getToken } from '@/utils/auth'

// 创建axios实例
const service = axios.create({
    //baseURL:"http://82.156.128.240:8002/liepin",
    baseURL:process.env.VUE_APP_BASE_API,   // api 的 base_url
    timeout: 5000   // 请求超时时间
})

//request 请求拦截器
service.interceptors.request.use(
    config => {
        // 让每个请求携带自定义token 请根据实际情况自行修改
        config.headers['token'] = Vue.cookie.get('client_token')
        return config
    },
    error => {
        // Do something with request error
        console.log(error) // for debug
        Promise.reject(error)
    }

)

//response 相应拦截器拦截器
service.interceptors.response.use(
    response => {
        /**
         * code为非0是抛错 可结合自己业务进行修改
         */

        if (response.status === 200){
            //debugger
            //如果返回的数据是一个BloB类型的让他 直接返回
            if (response.data instanceof Blob){
                return response
            }


            console.log("response ===>>" ,response)
            const res = response.data
            if (res.code !== 0) {
                //Token 过期失效  直接回到主页面
                if(res.code === 401 || res.code === 403){

                }

                if (res.code === 500){
                    return response
                }

                Message({
                    message: res.msg,
                    type: 'error',
                    duration: 5 * 1000
                })
                return Promise.reject('error')
            } else {
                return response
            }
        }else{
            Message({
                message: '请求失败,请检查网络',
                type: 'error',
                duration: 5 * 1000
            })
            return Promise.reject('error')
        }
    },
    error => {
        console.log('err' + error) // for debug
        Message({
            message: error.message,
            type: 'error',
            duration: 5 * 1000
        })
        return Promise.reject(error)
    }
)

export default service
